//package com.daxt.utils;
//
//import java.io.File;
//import java.io.IOException;
//import java.io.InputStream;
//import java.security.InvalidKeyException;
//import java.security.NoSuchAlgorithmException;
//import java.util.ArrayList;
//import java.util.List;
//
//import javax.activation.MimetypesFileTypeMap;
//
//import com.daxt.model.constant.SystemConfig;
//import com.fasterxml.jackson.core.JsonParseException;
//import com.fasterxml.jackson.databind.JsonMappingException;
//
//import io.minio.MinioClient;
//import io.minio.PutObjectOptions;
//import io.minio.Result;
//import io.minio.errors.*;
//import io.minio.messages.Item;
//
//public class MinioUtil {
//
//
//
//	public static MinioClient minioClient;
//	static {
////		minioClient = new MinioClient("http://127.0.0.1:9000", "jtlt", "File.com");
//		minioClient = new MinioClient("https://play.min.io", "Q3AM3UQ867SPQQA43P2F", "zuf+tfteSlswRu7BJ86wekitnifILbZam1KYY3TG");
//	}
//
//
////	public static MinioClient minioClient;
////	static {
////		try {
////			//minioClient = new MinioClient(SystemConfig.ossIpDoMain, "szlusername", "szlpassword");
////			minioClient = new MinioClient(SystemConfig.ossIp, "minioadmin", "minioadmin");
////			// MinioClient s3Client = new MinioClient("s3.amazonaws.com",
////			// "YOUR-ACCESSKEYID", "YOUR-SECRETACCESSKEY"); s3
////		} catch (Exception e) {
////			e.printStackTrace();
////		}
////	}
//
//
//
//	public static int makeBucket(String bucketName) {
//		try {
//			if (!minioClient.bucketExists(bucketName)) {
//				  minioClient.makeBucket(bucketName);
//			}else
//				return 0;
//		} catch (Exception e) {
//			e.printStackTrace();
//			return -1;
//		}
//		return 1;
//	}
//
//	public static String uploadFile(String bucketName, String objectName,InputStream input,PutObjectOptions options) throws IOException {
//		makeBucket(bucketName);
////		try {
////			minioClient.statObject(bucketName, objectName);
////			return null;
////		} catch (Exception e) {
//
////		}
//		try {
//			//生成256位AES key。
//			// KeyGenerator symKeyGenerator = KeyGenerator.getInstance("AES");
//			// symKeyGenerator.init(256);
//			// SecretKey symKey = symKeyGenerator.generateKey();
//			minioClient.putObject(bucketName, objectName, input, options);//options
//			return bucketName+"/"+objectName;
//		} catch (Exception e) {
//			e.printStackTrace();
//			return null;
//		}
//	}
////	public static String uploadFile(String bucketName, String objectName,InputStream input,PutObjectOptions options,long fileSize) throws IOException {
////		makeBucket(bucketName);
////		try {
////			minioClient.statObject(bucketName, objectName);
////			//return null;
////		} catch (Exception e) {
////			//e.printStackTrace();
////
////		}
////		try {
////
////
////			PutObjectArgs build = PutObjectArgs.builder().bucket(bucketName).object(objectName)
////            .stream(input, fileSize, -1)
////            .contentType(options.contentType())
////            .build();
////			minioClient.putObject(build);
////			return bucketName+"/"+objectName;
////		} catch (Exception e) {
////			e.printStackTrace();
////			return null;
////		}finally {
////			if(input!=null)
////				input.close();
////		}
////	}
//
//	public static String uploadFile(String bucketName, String objectName,String filePath) {
//		makeBucket(bucketName);
//
//		try {
//			File file=new File(filePath);
//			PutObjectOptions options=new PutObjectOptions(file.length(), -1);
//			minioClient.putObject(bucketName, objectName, filePath, options);//options
//			return bucketName+"/"+objectName;
//		} catch (Exception e) {
//			e.printStackTrace();
//			return null;
//		}
//	}
//
//	public static InputStream downFile(String bucketName, String objectName) {
//		try {
//
//			InputStream input = minioClient.getObject(bucketName, objectName);
//			System.out.println(input.available()+"---");
//			return input;
//		} catch (Exception e) {
//			e.printStackTrace();
//			return null;
//		}
//	}
//	public static boolean remove(String bucketName,String objectName){
//		try {
//		minioClient.removeObject(bucketName, objectName);
//		return true;
//		}catch (Exception e) {
//			e.printStackTrace();
//			return false;
//		}
//	}
//
//
//	public static String getExpiryUrl(String bucketName,String objectName){
//		try {
//
//			String url = minioClient.presignedGetObject(bucketName, objectName,60*60); //秒
//			//if(!StringUtils.isEmpty(url)) {
//			//	url=url.replace(SystemConfig.ossIpDoMain, SystemConfig.ossIp);
//			//}
//			return url;
//		}catch (Exception e) {
//			e.printStackTrace();
//			return null;
//		}
//	}
//
//
//    public static String getContentType(String fileUrl) {
//        String contentType = null;
//        try {
//            contentType = new MimetypesFileTypeMap().getContentType(new File(fileUrl));
//        } catch (Exception e) {
//            e.printStackTrace();
//        }
//        System.out.println("getContentType, File ContentType is : " + contentType);
//        return contentType;
//    }
//	public static void getList(String temp) throws JsonParseException, InvalidKeyException, JsonMappingException, ErrorResponseException, IllegalArgumentException, InsufficientDataException, InternalException, InvalidBucketNameException, InvalidResponseException, NoSuchAlgorithmException, XmlParserException, IOException {
//		List<String> list=new ArrayList<String>();
//		Iterable<Result<Item>> listObjects = minioClient.listObjects(temp, "", true);
//
//		for (Result<Item> result : listObjects) {
//			Item item = null;
//			try {
//				item = result.get();
//			} catch (JsonParseException e) {
//				e.printStackTrace();
//			} catch (InvalidKeyException e) {
//				e.printStackTrace();
//			} catch (JsonMappingException e) {
//				e.printStackTrace();
//			} catch (ErrorResponseException e) {
//				e.printStackTrace();
//			} catch (IllegalArgumentException e) {
//				 
//				e.printStackTrace();
//			} catch (InsufficientDataException e) {
//				 
//				e.printStackTrace();
//			} catch (InternalException e) {
//				 
//				e.printStackTrace();
//			} catch (InvalidBucketNameException e) {
//				 
//				e.printStackTrace();
//			} catch (InvalidResponseException e) {
//				 
//				e.printStackTrace();
//			} catch (NoSuchAlgorithmException e) {
//				 
//				e.printStackTrace();
//			} catch (ServerException e) {
//				 
//				e.printStackTrace();
//			} catch (XmlParserException e) {
//				 
//				e.printStackTrace();
//			} catch (IOException e) {
//				 
//				e.printStackTrace();
//			}
//			String objectName = item.objectName();
//			boolean remove = MinioUtil.remove(temp, objectName);
//			if(!remove)
//				list.add(objectName);
//		}
//		if(list.size()>0) {
//			for (String str : list) {
//				MinioUtil.remove(temp, str);
//			}
//		}
//	}
//	public static void main(String[] args) {
//		System.out.println();
//	}
//}
